package yz.cp.back.u.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import yz.cp.back.base.BaseEntity;
import yz.cp.back.common.enums.MerchantType;
import yz.cp.back.common.enums.RoleType;
import yz.cp.back.common.enums.UserRoleStatus;

/**
 * <p>
 * 用户角色表
 * </p>
 *
 * @author jobob
 * @since 2019-04-03
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class UserRole extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * merchant ID
     */
    private String id;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 商户编号(也叫注册编号)
     * yyMMdd(6位)+role_type(1位)+SN(4位)
     */
    private String merchantNo;

    /**
     * 商家名称
     */
    private String merchantAbbrName;

    /**
     * 商家名称
     */
    private String merchantName;

    /**
     * 商户类型
     * F1-资金方
     * S1-供应商
     * L1-自营租赁商
     * L2-入驻租赁商
     * P1-租赁平台
     * I1-保险公司
     */
    private String merchantType;

    /**
     * role_type='6-租赁平台'的Merchant_ID
     */
    private String accessId;

    /**
     * 商户角色
     * 1.资金方
     * 2.保险公司
     * 3.供应商
     * 4.租赁商
     * 5.回收商
     * 6.租赁平台
     */
    private Integer roleType;

    /**
     * 法人姓名
     */
    private String legalName;

    /**
     * 法人身份证号
     */
    private String legalIdCard;

    /**
     * 法人身份证正面
     */
    private String legalIdUrl1;

    /**
     * 法人身份证反面
     */
    private String legalIdUrl2;

    /**
     * 联系人手机号
     */
    private String contactPhone;

    /**
     * 联系人职位
     */
    private String contactPosition;

    /**
     * 联系人地址
     */
    private String contactAddress;

    /**
     * 紧急联系人姓名
     */
    private String emergencyContactName;

    /**
     * 紧急联系人手电话
     */
    private String emergencyContactPhone;

    /**
     * 与紧急联系人关系
     */
    private String userEmergencyRelation;

    /**
     * 营业职照编号
     */
    private String businessLicense;

    /**
     * 营业职照照片
     */
    private String businessLicenseUrl;

    /**
     * 详细(最高学历毕业证,驾驶证信息,房产证信息租房合同,授权委托书,经营资质)
     */
    private String details;

    /**
     * 商户状态
     * 0-待审核
     * 1-正常/审核通过
     * 2-审核被拒
     * 3-冻结
     */
    private Integer status;

    /**
     * 审核被拒原因
     */
    private String remarks;


    /**
     * review time审核时间
     */
    private Integer rtime;
    /**
     * reviewed by
     * 审核人
     */
    private String rby;

    /**
     * 是否白名单用户
     */
    private Boolean credible;

    /**
     * Reserved Field 保留字段
     */
    @TableField("RSV_FLD")
    private String rsvFld;

    @TableField(exist = false)
    private String accessName;

    @TableField(exist = false)
    private String roleTypeName;

    @TableField(exist = false)
    private String statusName;

    @TableField(exist = false)
    private String merchantTypeName;


   public void initNme(){
        setRoleTypeName(RoleType.getByCode(getRoleType()).getName());
        setStatusName(UserRoleStatus.getByCode(getStatus()).getName());
        setMerchantTypeName(MerchantType.getByCode(getMerchantType()).getName());
    }
}
